Computing is typically governed by limitations to memory and processing speed. Enterprise computing, which includes enterprise resource planning (ERP), is an area of computing that integrates various organizational systems to facilitate production and transaction of goods and services. The applications for which business management software such as ERP is useful has been traditionally classified as involving either structured or unstructured data, and accordingly, ERP software has been adaptively designed for a particular broad category of data. However, ERP, customer relationship management (CRM), supplier relationship management (SRM), business intelligence (BI), and e-Commerce is becoming increasingly relevant to areas as diverse as sensor and feedback networks, real-time event analytics, social networking, cloud integration, mobile applications, and supply chain management. These varied applications demand analysis of both structured and unstructured data. To this end, systems such as SAP HANA® combine Online Transaction Processing (OLTP) and Online Analytical Processing (OLAP) for both structure and unstructured data, using hardware and database systems to create a single source of data, enable real-time analytics, and simplify applications and database structures.
Some ERP software improve computational speeds and efficiency even within existing memory and speeds limitations by using column-based data storage and in-memory database operators. One way to manipulate data in column-based data storage is by dictionary encoding. Dictionary encoding decreases space requirements, increases column scan speed, and can operate directly on compressed data. Dictionary encoding can be better organized with the aid of data structures such as attribute vectors, which assist in structuring and organizing data. However, inserting and deleting data can be expensive, because adding new values to the data store typically requires reorganization of dictionaries and attribute vectors.